package com.atguigu.gmall.cart.service.impl;

import com.atguigu.gmall.cart.mapper.CartInfoMapper;
import com.atguigu.gmall.cart.service.CartInfoAsyncService;
import com.atguigu.gmall.model.cart.CartInfo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

//购物车中  创建新线程的实现类
@Service
public class CartInfoAsyncServiceImpl implements CartInfoAsyncService {
    @Autowired
    private CartInfoMapper cartInfoMapper;

    //Mysql 更新购物车     打异步注解的方式   异步保存  异步调用
    @Override
    @Async
    public void updateByIdAsync(CartInfo cartInfo) {
        //cartInfoMapper.updateById(cartInfo);
        System.out.println("Async:" + Thread.currentThread().getName());

        cartInfoMapper.update(cartInfo,new QueryWrapper<CartInfo>()
                .eq("user_id",cartInfo.getUserId())
                .eq("sku_id",cartInfo.getSkuId()));
    }
    //Mysql 保存购物车     打异步注解的方式   异步保存  异步调用
    @Override
    @Async
    public void insertAsync(CartInfo cartInfo) {
        cartInfoMapper.insert(cartInfo);

    }

}
